﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using Newtonsoft.Json;

namespace Smugmug
{
    [JsonObject]
    public class AlbumTemplate : IIdentifiable<int>
    {
        #region Properties

        [XmlAttribute("id"), JsonProperty("id")]
        public int Id { get; set; }
        [XmlAttribute]public string AlbumTemplateName { get; set; }
        [XmlAttribute]public string Backprinting { get; set; }
        [XmlAttribute]public bool CanRank { get; set; }
        [XmlAttribute]public bool Clean { get; set; }
        public Community Community { get; set; }
        [XmlAttribute]public bool DefaultColor { get; set; }
        [XmlAttribute]public bool EXIF { get; set; }
        [XmlAttribute]public bool External { get; set; }
        [XmlAttribute]public bool FamilyEdit { get; set; }
        [XmlAttribute]public bool Filenames { get; set; }
        [XmlAttribute]public bool FriendEdit { get; set; }
        [XmlAttribute]public bool Geography { get; set; }
        [XmlAttribute]public bool Header { get; set; }
        [XmlAttribute]public bool HideOwner { get; set; }
        [XmlAttribute]public bool Larges { get; set; }
        [XmlAttribute]public bool Originals { get; set; }
        [XmlAttribute]public string Password { get; set; }
        [XmlAttribute]public string PasswordHint { get; set; }
        [XmlAttribute]public string Printable { get; set; }
        [XmlAttribute]public int ProofDays { get; set; }
        [XmlAttribute]public bool Protected { get; set; }
        [XmlAttribute]public bool Public { get; set; }
        [XmlAttribute]public bool Share { get; set; }
        [XmlAttribute]public bool SmugSearchable { get; set; }
        [XmlAttribute]public bool SortDirection { get; set; }
        [XmlAttribute]public string SortMethod { get; set; }
        [XmlAttribute]public bool SquareThumbs { get; set; }
        public TemplateType Template { get; set; }
        [XmlAttribute]public float UnsharpAmount { get; set; }
        [XmlAttribute]public float UnsharpRadius { get; set; }
        [XmlAttribute]public float UnsharpSigma { get; set; }
        [XmlAttribute]public float UnsharpThreshold { get; set; }
        public Watermark Watermark { get; set; }
        [XmlAttribute]public bool Watermarking { get; set; }
        [XmlAttribute]public bool WorldSearchable { get; set; }
        [XmlAttribute]public bool X2Larges { get; set; }
        [XmlAttribute]public bool X3Larges { get; set; }
        [XmlAttribute]public bool XLarges { get; set; }

        #endregion
    }

    [XmlType("AlbumTemplates"), JsonObject]
    public class AlbumTemplateCollection : List<AlbumTemplate> { }
}